package com.carleasoft.mps.cms.business.train.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.carleasoft.mps.cms.business.train.bean.entity.TrainCar;
import com.carleasoft.mps.cms.business.train.bean.po.StatisticalAnalysisConsumptionPo;
import com.carleasoft.mps.cms.business.train.bean.po.TrainCarPageQueryPo;
import com.carleasoft.mps.cms.business.train.bean.vo.DictVo;
import com.carleasoft.mps.cms.business.train.bean.vo.TrainCarDetailVo;
import com.carleasoft.mps.cms.business.train.bean.vo.TrainCarVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Set;

/**
 * <p>
 * 训练用车 Mapper 接口
 * </p>
 *
 * @author fan
 * @since 2023-05-17
 */
@Mapper
public interface TrainCarMapper extends BaseMapper<TrainCar> {
    /**
     * 训练日常消耗-用车-分页查询
     */
    Page<TrainCarVo> pageQuery(Page page,@Param("po") TrainCarPageQueryPo trainCarPageQueryPo);
    /**
     * 训练日常消耗-用车-详情
     */
    TrainCarDetailVo detail(@Param("carCode") String carCode);
    /**
     * 根据参数统计报车用车
     * carType 用车类型（1常规用车 2预报长途车）
     * month 月份
     */
    Integer statisticsTrainCar(@Param("carType") Integer carType ,@Param("month")String month);
    /**
     * 根据年份来统计报车用车(用车类型统计)
     */
    List<HashMap<String,Object>> statisticsTrainCarTypeByYear(@Param("year") String year);
    /**
     * 根据年份来统计报车用车（类别统计）
     */
    List<HashMap<String,Object>> statisticsTrainCarDriveTypeByYear(@Param("year") String year);
    /**
     * 获取某年度的所有用车类型统计
     */
    List<HashMap<String,Object>> getTrainCarTypeByYear(@Param("year") String year);
    /**
     * 获取某年度的所有用车类别统计
     */
    List<HashMap<String,Object>> getTrainCarDriveTypeByYear(@Param("year") String year);
    /**
     * 获取某年度的个月某个(类型)的用车数量统计
     */
    List<HashMap<String,Object>> useCarNumByYear(@Param("carType") Integer carType,@Param("year") String year );
    /**
     * 获取某年度的个月某个(类别)的用车数量统计
     */
    List<HashMap<String,Object>> useCarNumDriveTypeByYear(@Param("driveType") String driveType,@Param("year") String year );
    /**
     * 获取字典表里面的报车用车类别
     */
    List<HashMap<String,Object>> selectDict(@Param("type")Integer type);
    /**
     * 统计分析-消耗情况
     * type 1-药品 2-油料
     */
    List<HashMap<String,Object>> statisticalAnalysisConsumption(@Param("po") StatisticalAnalysisConsumptionPo statisticalAnalysisConsumptionPo,@Param("type")Integer type );

    List<DictVo> dictVos(@Param("type") String type);

    String deptInfo(@Param("deptName") String depName);
}
